#define  _CRT_SECURE_NO_WARNINGS 1
//#include"head.h"

/*
字符串以'\0'作为结束标志，strlen函数返回的是在字符串中'\0'前面出现的字符个数(不包含'\0')。
参数指向的字符串必须要以'\0'结束。
注意函数的返回值为 sizet，是无符号的(易错)
strlen的使用需要包含头文件<string.h>
*/

//int main()
//{
//	//char str[] = "hello world";
//	//printf("%d\n", strlen(str));
//
//	char str1[] = "abcdef";
//	char str2[] = "abc";
//	//if (strlen(str2) - strlen(str1) > 0) //-3 --> 因为返回值是无符号的，所以运算得到的-3的补码就被当做原码
//		//3				//6
//	if ((int)strlen(str2) - (int)strlen(str1) > 0)
//	{
//		printf("str2 > str1\n");
//	}
//	else
//	{
//		printf("str2 <= str1\n");
//	}
//
//	return 0;
//}

//strlen函数的实现
//1、计数器
//2、指针-指针
//3、递归

//从str指向的字符串中统计\0之前的字符个数
//不期望修改str指向的字符串
//size_t my_strlen(const char* str)
//{
//    assert(str != NULL);
//	if(*str == '\0')
//        return 0;
//	else
//        return 1 + my_strlen(str + 1);
//}
//
//int main()
//{
//	char str[] = "abcdef";
//	size_t len = my_strlen(str);
//    printf("%zd\n", len);
//
//	return 0;
//}
